python self explained